﻿/**
 * 主窗口类的构造方法。
 */
function MainWindow() {
    const mButtonStart = document.getElementById("IDC_BUTTON_START")    // "开始"按钮
    var mGame = null                                                    // 游戏

    // 设置文档标题
    document.title = IDS_APP_NAME[LANG]

    // 设置按键事件监听者
    document.onkeydown = onKeyPressed

    // 添加游戏结束事件监听者
    document.addEventListener(Const.UM_GAME_OVER, onGameOver)
    
    // 设置"开始"按钮
    mButtonStart.innerHTML = IDS_START[LANG]
    mButtonStart.onclick = onButtonStartClicked

    // 创建游戏区域
    const gameBoard = new GameBoard("IDC_GAME_BOARD")

    // 创建游戏
    mGame = new Game(gameBoard.getDrawer(), gameBoard)
    
    /**
     * "开始"按钮的单击响应方法。
     */
    function onButtonStartClicked() {
        mButtonStart.innerHTML = IDS_RESTART[LANG]
        mGame.start()
    }
    
    /**
     * 按键事件的响应方法。
     * @param e 事件相关信息
     */
    function onKeyPressed(e) {
        mGame.onKeyPressed(e.keyCode)
    }

    /**
     * 游戏结束事件的响应方法。
     * @param e 事件相关信息
     */
    function onGameOver(e) {
        if (e.arg1) {
            window.alert(IDS_WON[LANG])
        } else {
            window.alert(IDS_LOST[LANG])
        }

        mButtonStart.innerHTML = IDS_START[LANG]
    }
}
